package com.wudl.file.service;

import com.wudl.common.api.CommonResult;
import com.wudl.file.domain.FileInfo;

import java.io.InputStream;
import java.util.List;

/**
 * @author ：wudl
 * @date ：Created in 2022-03-17 18:33
 * @description：
 * @modified By：
 * @version: 1.0
 */

public interface FileService {

    /**
     * 创建一个桶
     *
     * @param bucket
     */
    public CommonResult createBucket(String bucket) ;


    /**
     * 上传一个文件
     *
     * @param stream
     * @param bucket
     * @param objectName
     */
    public CommonResult uploadFile(InputStream stream, String bucket, String objectName);

    public void uploadfileMultipar(InputStream stream, String bucket, String objectName) throws Exception;

    /**
     * 列出所有的桶
     *
     * @return
     */
    public CommonResult<List<String>> listBuckets();

    /**
     * 列出一个桶中的所有文件和目录
     *
     * @param bucket
     * @return
     */
    public CommonResult<List<FileInfo>> listFiles(String bucket);


    /**
     * 下载一个文件
     *
     * @param bucket
     * @param objectName
     * @return
     */
    public  CommonResult<InputStream> download(String bucket, String objectName);

    public InputStream downloadFile(String bucket, String objectName) throws Exception;


    /**
     * 删除一个桶
     *
     * @param bucket
     */
    public CommonResult deleteBucket(String bucket);

    /**
     * 删除一个对象
     *
     * @param bucket
     * @param objectName
     */
    public CommonResult deleteObject(String bucket, String objectName);
}
